The present invention relates to vehicle diagnostic systems and methods for analyzing vehicle attributes. In particular, the present invention relates to an object oriented approach to vehicle diagnostics.
Vehicle diagnostics involves identifying one or more faults in a vehicle. Since a vehicle is a complex combination of sub-systems, vehicle diagnosis can be difficult. In particular, the fact that many sub-systems are dependent on other sub-systems makes it difficult to isolate some faults in a vehicle. For instance, the ignition sub-system, which generates and distributes sparks to the engine, is dependent on the electrical sub-system that provides electrical voltage and current to the entire vehicle. If the ignition system is not working properly, the fault may be in the electrical system and not the ignition system.
To try to isolate faults in this complex system, the prior art has developed computer based systems that employ one of several fault detection methods. In one method, a computer is able to "learn" to associate specific vehicle faults with a collection of signals measured from the vehicle. After "learning" this association, the system could provide a likely vehicle fault based on a collection of test signals. In another system, a vehicle fault was determined using a "top-down" approach. The system would begin with the base fault that the vehicle was faulty. From this beginning, the system subdivided the vehicle into component parts until reaching a specific singular fault.
A method of particular interest to the present invention was disclosed in U.S. application Ser. No. 08/548,966, U.S. Pat. No. 5,631,831 entitled DIAGNOSIS METHOD FOR VEHICLE SYSTEMS, which was filed by John A. Bird et al. on Aug. 8, 1995. This method uses an objected-oriented approach that first selects a root fault evaluation tool. The root fault evaluation tool is a coding object that calls a number of other coding objects for its evaluation. These coding objects perform individual evaluations by calling other coding objects and/or by analyzing input signals from the vehicle. The Bird et al. system first expands all objects called, either directly or indirectly, by the root object. Once expanded, the objects are executed, beginning with the objects that did not evoke the execution of other objects and ending with the execution of the root object.
The Bird et al. system provides improved system flexibility because each object's operation is independent of the object that calls it. This allows different objects to call each other without requiring that they perform special functions before invoking another object. It also reduces the time and effort needed to correct an error in the diagnosis system because each object can be tested independently. In addition, the expansive nature of Bird et al., allows the system to detect multiple faults during the determination of the root fault. This differs from earlier systems which were only able to determine a singular fault.
However, since a single object in Bird et al. can be called by more than one other object, it is difficult to control communications between specific coding objects and the user. For instance, if every coding object creates a message when it executes, a message produced by an object may be duplicated if the object is called several times during the expansion of a root object. In addition, the expansion of a large number of objects under a root object would cause a large number of unwanted messages to be displayed.
Moreover, including messages in each coding object of Bird et al. is undesirable because such messages occupy a significant amount of memory. Since these coding objects must be loaded into a random access memory before execution, including messages in each coding object would increase the amount of random access memory needed by the system, and thus increase the cost of the vehicle diagnostic system.